Communications in most of today's communications networks are accomplished by transmitting formatted blocks of data, commonly know as “data packets”. Data packets are transmitted between network elements, which act as originating and/or final destination endpoints, and commonly traverse other network elements that route the packets towards their respective destination. Application servers and user terminals are examples of network elements acting as originating and/or final destination endpoints; and routers, firewalls, Local Area Network LAN switches, protocol gateways, etc, are examples of network elements routing data packets from one endpoint towards another endpoint.
Network elements routing packets are usually configured with routing information for determining the next network element where to send a received packet, usually known as “next hop”. A path through a network for sending packets towards a given network element is commonly known as “route”, and the routing information referred above is commonly known as “routing tables”.
Routing tables in a network element, either: referred to routes held by said network element, or to routes held by others; can be configured statically (e.g. the so called “static routes”, configured via operation and maintenance commands) and/or dynamically (“dynamic routes”). In the latest case, dynamic data in the routing table of a network element are configured by using route advertising protocols. Examples of these protocols are: “Open Shortest Path First” (OSPF), “Intermediate system to Intermediate System” (IS-IS), or Border Gateway Protocol (BGP).
By using a route advertising protocol, a network element, such as a router routing Internet Protocol (IP) packets, advertises the route(s) it handles towards some destination(s) (commonly, statically configured in said network element), and is dynamically acquainted with the routes held by other network elements towards some other destination(s). This is accomplished by sending route advertisement messages comprising identifiers related to the sending network element (e.g. a router) and the destination(s). Accordingly, dynamic entries in a routing table of a network element, referred to routes held by others, can be added and/or modified according to the content of route advertisement messages received from other network elements.
Dynamic entries in a routing table can also be deleted/modified according to further content of route advertisement messages received from other network elements. For example, in OSPF a field called “Link-State-Advertisement” (LSA) is used. The LSA age information of a given route entry in a routing table can be used to delete said route when it becomes too old; for example when the same route is not re-advertised by the same network element in a given time (e.g. a typical time is when the LSA of a OSPF advertised route becomes half an hour old).
Other data type can be stored in an entry of a given route comprising information indicative of a cost (usually related to factors such as time delay, quality of service, maximum theoretical bandwidth, reachability, etc) for routing a packet trough said route towards its destination. Such information is usually known as “metric”, and said term shall be used across the present application to refer to said information.
In the routing table of a given network element, the metric information associated to a given static route it holds, and eventually advertises, is usually configured statically, e.g.: via operation and maintenance, O&M, commands. Information about the metric of a route held by a given network element can be included in a route advertisement message sent from said network element to other network elements. Accordingly, for routes advertised by others, the routing table of a given network element can comprise (dynamic) information according to the received advertised metrics.
The features provided by today's communication protocols and data packet transmission technologies make possible the interconnection of a huge number of different (sub)networks, which can belong to different network domains (e.g. network infrastructures belonging to different organizations that can be spread across different geographical locations), wherein a plurality of network elements arranged for routing packets provide a “mesh” allowing the establishment of communications between other network elements acting as information endpoints. These features have permitted the deployment of a high variety of applications, which give rise to a plurality of business opportunities, but, on the other hand, put some strong demands on the transmission infrastructure and resources of the communications networks in terms of: speed, resiliency, quality, etc.
In the meshed interconnection scenario described above, it can be usual that the path of a data packet, sent from an originator endpoint towards a destination endpoint, traverses a plurality of network elements routing packets, wherein some of them can be used as an alternative to others for transmitting the data packet towards its destination, as defined by the corresponding routing tables stored in these network elements. In other words, in complex communications networks (which can involve intranets and the internet) data packets towards a given network element can be sent through alternative routes, some of which does not necessarily always involve the intervention of the same intermediate network element(s) routing the packets. This provides resiliency (e.g. in case a network element routing packets becomes unavailable), and also helps to distribute packet data traffic across available network elements.
In case a network element routing packets finds more than one (alternative) route for sending a received packet, a selection criterion, among others, comprises selecting a suitable route on its routing tables that implies the lowest routing cost, if more than one are available. Therefore, in order to achieve an optimized usage of the transmission resources of a communications network, it is of an outmost importance that dynamic data in the routing table of a network element routing packets, referred to routes held by others towards a given destination, contain the appropriate information, so as to achieve said goal.